/*
 * Copyright (c) 2012 NeuLion, Inc. All Rights Reserved.
 */
package com.noteit.upload;
/*
 * Copyright (c) 2012 NeuLion, Inc. All Rights Reserved.
 */
import java.io.File; 
 import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
 import java.util.Iterator;  
 import java.util.List;  
import java.util.UUID;
 
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet; 
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
  
 import org.apache.commons.fileupload.FileItem;  
 import org.apache.commons.fileupload.FileUploadException;  
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;  
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.struts2.ServletActionContext;


 @SuppressWarnings("serial")
  
 public class Upload extends HttpServlet {
  
    @SuppressWarnings("unchecked")
 
     public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
    	
    	String userEmail = request.getParameter("userEmail");//由jsp而來的參數
    	
    	String[] userName = userEmail.split("@");
        String savePath = "/opt/NoteITService/"+userName[0]+"/";
        
  
        File f1 = new File(savePath);
  
        System.out.println(savePath);
  
         if (!f1.exists()) {
  
             f1.mkdirs();
 
         }
 
         DiskFileItemFactory fac = new DiskFileItemFactory();
  
        ServletFileUpload upload = new ServletFileUpload(fac);
  
        upload.setHeaderEncoding("utf-8");
  
        List fileList = null;
  
         try {
  
             fileList = upload.parseRequest(request);
  
        } catch (FileUploadException ex) {
            return;
 
         }
  
        Iterator<FileItem> it = fileList.iterator();
  
         String name = "";
  
         String extName = "";
  
         while (it.hasNext()) {
  
             FileItem item = it.next();
  
             if (!item.isFormField()) {
 
                 name = item.getName();
 
                 long size = item.getSize();
  
                 String type = item.getContentType();
  
                 System.out.println(size + " " + type);
  
                 if (name == null || name.trim().equals("")) {
 
                     continue;
  
                 }
  
                 //扩展名格式：
  
                 if (name.lastIndexOf(".") >= 0) {
 
                     extName = name.substring(name.lastIndexOf("."));
  
                 }
  
                File file = null;
 
                 do {
  
                     //生成文件名：
                	 SimpleDateFormat general = new SimpleDateFormat("MMddHHmmssSSS");
            		 Date nowDate = new Date();
            		 name = general.format(nowDate);
  
                     file = new File(savePath + name + extName);
                 } while (file.exists());
 
                 File saveFile = new File(savePath + name + extName);
  
                 try {
 
                    item.write(saveFile);
  
                 } catch (Exception e) {
  
                     e.printStackTrace();
 
                 }
  
             }
 
        }
       //return value to jquery code (noteit.jsp)
       response.getWriter().print(savePath + name + extName);
  
     }
  
}